/*    */ package blockbuster.math;
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ public class Operator
/*    */   implements IValue
/*    */ {
/*    */   public static boolean DEBUG = false;
/*    */   public Operation operation;
/*    */   public IValue a;
/*    */   public IValue b;
/* 16 */   private IValue result = new Constant(0.0D);
/*    */ 
/*    */   
/*    */   public Operator(Operation op, IValue a, IValue b) {
/* 20 */     this.operation = op;
/* 21 */     this.a = a;
/* 22 */     this.b = b;
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public IValue get() {
/* 28 */     if (!isNumber() && this.operation == Operation.ADD) {
/*    */       
/* 30 */       this.result.set(stringValue());
/*    */     }
/*    */     else {
/*    */       
/* 34 */       this.result.set(doubleValue());
/*    */     } 
/*    */     
/* 37 */     return this.result;
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public boolean isNumber() {
/* 43 */     return (this.a.isNumber() || this.b.isNumber());
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public void set(double value) {}
/*    */ 
/*    */ 
/*    */   
/*    */   public void set(String value) {}
/*    */ 
/*    */ 
/*    */   
/*    */   public double doubleValue() {
/* 57 */     if (!isNumber() && this.operation == Operation.EQUALS)
/*    */     {
/* 59 */       return this.a.stringValue().equals(this.b.stringValue()) ? 1.0D : 0.0D;
/*    */     }
/*    */     
/* 62 */     return this.operation.calculate(this.a.doubleValue(), this.b.doubleValue());
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public boolean booleanValue() {
/* 68 */     return Operation.isTrue(doubleValue());
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public String stringValue() {
/* 74 */     if (this.operation == Operation.ADD)
/*    */     {
/* 76 */       return this.a.stringValue() + this.b.stringValue();
/*    */     }
/*    */     
/* 79 */     return this.a.stringValue();
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public String toString() {
/* 85 */     if (DEBUG)
/*    */     {
/* 87 */       return "(" + this.a.toString() + " " + this.operation.sign + " " + this.b.toString() + ")";
/*    */     }
/*    */     
/* 90 */     return this.a.toString() + " " + this.operation.sign + " " + this.b.toString();
/*    */   }
/*    */ }


/* Location:              D:\fanbian\[D][龙之核心]DragonCore-2.6.0.3.jar!\blockbuster\math\Operator.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */